package com.ruoyi.system.wnjk.domain.po;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 体检报告对象 wnjk_physical_examination_report
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
public class PhysicalReport extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 报告ID */
    private Long reportId;

    /** 就诊人ID（外键，关联patient表） */
    @Excel(name = "就诊人ID", readConverterExp = "外=键，关联patient表")
    private Long patientId;

    /** 关联的订单编号（外键，关联physical_examination_order表） */
    @Excel(name = "关联的订单编号", readConverterExp = "外=键，关联physical_examination_order表")
    private String orderId;

    /** 报告生成医院ID（外键，关联hospital表） */
    @Excel(name = "报告生成医院ID", readConverterExp = "外=键，关联hospital表")
    private Long hospitalId;

    /** 关联的体检套餐ID（外键，关联physical_examination_package表） */
    @Excel(name = "关联的体检套餐ID", readConverterExp = "外=键，关联physical_examination_package表")
    private Long packageId;

    /** 报告生成日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报告生成日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportDate;

    /** 报告状态 */
    @Excel(name = "报告状态")
    private String reportStatus;

    /** 体检报告内容（JSON或详细文本，如各项目结果、医生建议） */
    @Excel(name = "体检报告内容", readConverterExp = "J=SON或详细文本，如各项目结果、医生建议")
    private String reportContent;

    /** 报告附件URL（如PDF文件链接） */
    @Excel(name = "报告附件URL", readConverterExp = "如=PDF文件链接")
    private String attachmentUrl;

    /** 负责医生ID（外键，关联doctor表） */
    @Excel(name = "负责医生ID", readConverterExp = "外=键，关联doctor表")
    private Long doctorId;

    /** 是否正常（0:异常，1:正常，NULL:未评估） */
    @Excel(name = "是否正常", readConverterExp = "0=:异常，1:正常，NULL:未评估")
    private Integer isNormal;

    /** 医生备注或建议 */
    @Excel(name = "医生备注或建议")
    private String notes;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setReportId(Long reportId) 
    {
        this.reportId = reportId;
    }

    public Long getReportId() 
    {
        return reportId;
    }
    public void setPatientId(Long patientId) 
    {
        this.patientId = patientId;
    }

    public Long getPatientId() 
    {
        return patientId;
    }
    public void setOrderId(String orderId) 
    {
        this.orderId = orderId;
    }

    public String getOrderId() 
    {
        return orderId;
    }
    public void setHospitalId(Long hospitalId) 
    {
        this.hospitalId = hospitalId;
    }

    public Long getHospitalId() 
    {
        return hospitalId;
    }
    public void setPackageId(Long packageId) 
    {
        this.packageId = packageId;
    }

    public Long getPackageId() 
    {
        return packageId;
    }
    public void setReportDate(Date reportDate) 
    {
        this.reportDate = reportDate;
    }

    public Date getReportDate() 
    {
        return reportDate;
    }
    public void setReportStatus(String reportStatus) 
    {
        this.reportStatus = reportStatus;
    }

    public String getReportStatus() 
    {
        return reportStatus;
    }
    public void setReportContent(String reportContent) 
    {
        this.reportContent = reportContent;
    }

    public String getReportContent() 
    {
        return reportContent;
    }
    public void setAttachmentUrl(String attachmentUrl) 
    {
        this.attachmentUrl = attachmentUrl;
    }

    public String getAttachmentUrl() 
    {
        return attachmentUrl;
    }
    public void setDoctorId(Long doctorId) 
    {
        this.doctorId = doctorId;
    }

    public Long getDoctorId() 
    {
        return doctorId;
    }
    public void setIsNormal(Integer isNormal) 
    {
        this.isNormal = isNormal;
    }

    public Integer getIsNormal() 
    {
        return isNormal;
    }
    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reportId", getReportId())
            .append("patientId", getPatientId())
            .append("orderId", getOrderId())
            .append("hospitalId", getHospitalId())
            .append("packageId", getPackageId())
            .append("reportDate", getReportDate())
            .append("reportStatus", getReportStatus())
            .append("reportContent", getReportContent())
            .append("attachmentUrl", getAttachmentUrl())
            .append("doctorId", getDoctorId())
            .append("isNormal", getIsNormal())
            .append("notes", getNotes())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
